home *** CD-ROM | disk | FTP | other *** search
- #include "defs.h"
-
- ixrect *pr;
- har *progname;
- har filename[BUFSIZ];
-
- #ifdef STANDALONE
- ain(argc, argv, envp)
- #else
- qualise_main(argc, argv, envp)
- #endif
- int argc;
- char **argv;
- char **envp;
- {
- register int i, j;
- int temp, n;
- int hist[10000][2];
- int sum, max_val;
-
- progname = strsave(argv[0]);
- parse_profile(&argc, argv, envp);
-
- strcpy(filename, "stdin");
-
- while ((gc = getopt(argc, argv, " ")) != EOF)
- switch (gc) {
- case '?':
- errflag++;
- break;
- }
-
- if (errflag)
- error((char *) 0, "Usage: %s: [infile] [outfile]\n", progname);
-
- for (stream = 0; optind < argc; stream++, optind++)
- if (stream < 2 && strcmp(argv[optind], "-") != 0)
- if (freopen(argv[optind], mode[stream], f[stream]) == NULL)
- error("%s %s", PR_IO_ERR_INFILE, argv[optind]);
-
- if ((pr = pr_load(stdin, NULL)) == NULL)
- error(PR_IO_ERR_RASREAD);
-
- if (pr->pr_depth == 1) {
- pr_dump(pr, stdout, NULL, RT_STANDARD, 0);
- exit(0);
- }
-
- if (bitrestrict)
- max_val = calc_max(pr);
- else
- max_val = MAXLEVEL(pr->pr_depth);
-
- for (i = 0; i < max_val; i++)
- hist[i][0] = hist[i][1] = 0;
-
- for(i=0;i<pr->pr_size.x;i++)
- for(j=0;j<pr->pr_size.y;j++)
- hist[pr_get(pr,i,j)][0]++;
-
- n = pr->pr_size.x * pr->pr_size.y;
- sum = 0;
- for (i = 0; i < max_val; i++) {
- sum += hist[i][0];
- temp = sum * max_val / n;
- temp = (temp > max_val) ? max_val : temp;
- hist[i][1] = temp;
- }
-
- for(i=0;i<pr->pr_size.x;i++)
- for(j=0;j<pr->pr_size.y;j++)
- pr_put(pr,i ,j , hist[pr_get(pr,i,j)][1]);
-
- pr_dump(pr, stdout, NULL, RT_STANDARD, 0);
- }
-